import json

from django.http import HttpResponse, JsonResponse
from django.shortcuts import render, redirect


# Create your views here.
# 1 请求行url路径 -- 正则匹配路由
# url: /weather/beijing/2018
from django.urls import reverse


def weather(request,place,year):
    print(place)
    print(year)
    return HttpResponse('weather')

# 2 请求体表单提取参数  QueryDict
def get_form_param(request):
    qd=request.POST
    print(qd.get('a'))
    print(qd.get('b'))
    print(qd.getlist('a'))
    return HttpResponse('form表单参数提取')

# 2.1 请求体非表单提取参数
# 通过request.body属性获取最原始的请求体数据
def get_json_param(request):
    json_bytes=request.body
    print(json_bytes)
    json_str=json_bytes.decode()
    print(type(json_str))
    dict1=json.loads(json_str)
    print(dict1)
    return HttpResponse('json格式的数据提取')

# 3 查询字符串 ？a=10&b=20&a=30     QueryDict
def get_question_param(request):
    qd=request.GET
    print(qd.get('a'))
    print(qd.get('b'))
    print(qd.getlist('a'))
    return HttpResponse('问号后面的参数提取')

# 4 请求头参数
def get_head_param(request):
    dict2=request.META
    print(dict2.get('CONTENT_TYPE'))
    return HttpResponse('请求头参数提取')

# ５　HttpResponse()的三个参数　　
def first_page(request):
    return HttpResponse('<h1>welcome</h1>',content_type='application',status=200)

# 6 JsonResponse()　＞＞　ＨttpResponse的子类
def json_response(request):
    dict3={
        "a":1,
        "b":2,
        "c":3
    }
    list1=[1,2,3]
    # return JsonResponse(dict3)
    # return JsonResponse(list1,safe=False)
    return JsonResponse({'list':list1})

# 7　重定向
def redirect_test(request):
    # return redirect('http://www.baidu.com')
    # 采用　namespace:name 的形式防止重命名
    print(reverse('namespace:index'))
    return redirect(reverse('namespace:index'))